package com.hyt.it.ogt.ykcj.domain.grade;


import java.math.BigDecimal;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import com.hyt.it.ogt.ykcj.common.annotation.Excel;
import com.hyt.it.ogt.ykcj.common.core.domain.BaseEntity;
import com.hyt.it.ogt.ykcj.common.utils.IdUtils;

/**
 * 公务员考试面试分析对象 servant_interview_analysis_data
 *
 * @author admin
 * @date 2021-10-13
 */
public class ServantInterviewAnalysisData extends BaseEntity {

  private static final long serialVersionUID = 1L;

  /**
   * 统计id
   */
  private String id;

  /**
   * 职位层级
   */
  private String positionTier;

  /**
   * 职位层级
   */
  @Excel(name = "职位层级名称")
  private String positionTierName;

  /**
   * 职位类别
   */
  private String zwlb;

  /**
   * 职位类别名称
   */
  @Excel(name = "职位类别名称")
  private String zwlbName;


  /**
   * 考试id
   */
  @Excel(name = "考试id")
  private String examId;

  /**
   * 考试名称配置id
   */
  @Excel(name = "考试名称配置id")
  private String examNameConfigId;

  /**
   * 考试年份
   */
  @Excel(name = "考试年份")
  private String examYear;

  /**
   * 应面试人数
   */
  @Excel(name = "应面试人数")
  private Long interviewNum;

  /**
   * 实际进面试人数
   */
  @Excel(name = "实际进面试人数")
  private Long retrialInterviewNum;

  /**
   * 实际进面试比例
   */
  @Excel(name = "实际进面试比例")
  private BigDecimal retrialInterviewRate;

  /**
   * 男面试人数
   */
  @Excel(name = "男面试人数")
  private Long maleInterviewNum;

  /**
   * 男面试比例
   */
  @Excel(name = "男面试比例")
  private BigDecimal maleInterviewRate;

  /**
   * 职位数量
   */
  @Excel(name = "职位数量")
  private Long positionNum;

  /**
   * 计划录取人数
   */
  @Excel(name = "计划录取人数")
  private Long planAdmissionNum;

  /**
   * 有人进面试的职位数
   */
  @Excel(name = "有人进面试的职位数")
  private Long hasRetrialPositionNum;

  /**
   * 男进面试职位数
   */
  @Excel(name = "男进面试职位数")
  private Long maleRetrialPositionNum;

  /**
   * 有人进面试的职位数
   */
  @Excel(name = "有人报名的职位数")
  private Long hasApplyPositionNum;

  /**
   * 男进面试职位数
   */
  @Excel(name = "有男报名职位数")
  private Long maleApplyPositionNum;

  public Long getHasApplyPositionNum() {
    return hasApplyPositionNum;
  }

  public void setHasApplyPositionNum(Long hasApplyPositionNum) {
    this.hasApplyPositionNum = hasApplyPositionNum;
  }


  public Long getMaleApplyPositionNum() {
    return maleApplyPositionNum;
  }

  public void setMaleApplyPositionNum(Long maleApplyPositionNum) {
    this.maleApplyPositionNum = maleApplyPositionNum;
  }

  /**
   * 男进面试职比例
   */
  @Excel(name = "男进面试职比例")
  private BigDecimal maleRetrialPositionRate;

  public String getPositionTierName() {
    return positionTierName;
  }

  public void setPositionTierName(String positionTierName) {
    this.positionTierName = positionTierName;
  }

  public String getZwlbName() {
    return zwlbName;
  }

  public void setZwlbName(String zwlbName) {
    this.zwlbName = zwlbName;
  }

  public void setId(String id) {
    this.id = id;
  }

  public String getId() {
    return id;
  }

  public void setPositionTier(String positionTier) {
    this.positionTier = positionTier;
  }

  public String getPositionTier() {
    return positionTier;
  }

  public  String getPositionTierAndZwlb(){
    return positionTier + zwlb;
  }

  public void setZwlb(String zwlb) {
    this.zwlb = zwlb;
  }

  public String getZwlb() {
    return zwlb;
  }


  public void setExamId(String examId) {
    this.examId = examId;
  }

  public String getExamId() {
    return examId;
  }

  public void setExamNameConfigId(String examNameConfigId) {
    this.examNameConfigId = examNameConfigId;
  }

  public String getExamNameConfigId() {
    return examNameConfigId;
  }

  public void setExamYear(String examYear) {
    this.examYear = examYear;
  }

  public String getExamYear() {
    return examYear;
  }

  public void setInterviewNum(Long interviewNum) {
    this.interviewNum = interviewNum;
  }

  public Long getInterviewNum() {
    return interviewNum;
  }

  public void setRetrialInterviewNum(Long retrialInterviewNum) {
    this.retrialInterviewNum = retrialInterviewNum;
  }

  public Long getRetrialInterviewNum() {
    return retrialInterviewNum;
  }

  public void setRetrialInterviewRate(BigDecimal retrialInterviewRate) {
    this.retrialInterviewRate = retrialInterviewRate;
  }

  public BigDecimal getRetrialInterviewRate() {
    return retrialInterviewRate;
  }

  public void setMaleInterviewNum(Long maleInterviewNum) {
    this.maleInterviewNum = maleInterviewNum;
  }

  public Long getMaleInterviewNum() {
    return maleInterviewNum;
  }

  public void setMaleInterviewRate(BigDecimal maleInterviewRate) {
    this.maleInterviewRate = maleInterviewRate;
  }

  public BigDecimal getMaleInterviewRate() {
    return maleInterviewRate;
  }

  public void setPositionNum(Long positionNum) {
    this.positionNum = positionNum;
  }

  public Long getPositionNum() {
    return positionNum;
  }

  public void setPlanAdmissionNum(Long planAdmissionNum) {
    this.planAdmissionNum = planAdmissionNum;
  }

  public Long getPlanAdmissionNum() {
    return planAdmissionNum;
  }

  public void setHasRetrialPositionNum(Long hasRetrialPositionNum) {
    this.hasRetrialPositionNum = hasRetrialPositionNum;
  }

  public Long getHasRetrialPositionNum() {
    return hasRetrialPositionNum;
  }

  public void setMaleRetrialPositionNum(Long maleRetrialPositionNum) {
    this.maleRetrialPositionNum = maleRetrialPositionNum;
  }

  public Long getMaleRetrialPositionNum() {
    return maleRetrialPositionNum;
  }

  public void setMaleRetrialPositionRate(BigDecimal maleRetrialPositionRate) {
    this.maleRetrialPositionRate = maleRetrialPositionRate;
  }

  public BigDecimal getMaleRetrialPositionRate() {
    return maleRetrialPositionRate;
  }

  @Override
  public String toString() {
    return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
        .append("id", getId())
        .append("positionTier", getPositionTier())
        .append("zwlb", getZwlb())
        .append("examId", getExamId())
        .append("examNameConfigId", getExamNameConfigId())
        .append("examYear", getExamYear())
        .append("interviewNum", getInterviewNum())
        .append("retrialInterviewNum", getRetrialInterviewNum())
        .append("retrialInterviewRate", getRetrialInterviewRate())
        .append("maleInterviewNum", getMaleInterviewNum())
        .append("maleInterviewRate", getMaleInterviewRate())
        .append("positionNum", getPositionNum())
        .append("planAdmissionNum", getPlanAdmissionNum())
        .append("hasRetrialPositionNum", getHasRetrialPositionNum())
        .append("maleRetrialPositionNum", getMaleRetrialPositionNum())
        .append("maleRetrialPositionRate", getMaleRetrialPositionRate())
        .append("createBy", getCreateBy())
        .append("createTime", getCreateTime())
        .append("updateBy", getUpdateBy())
        .append("updateTime", getUpdateTime())
        .toString();
  }

  public ServantInterviewAnalysisData init(String examYear, String examNameConfigId,
      String positionTier, String positionCategory) {
    setId(IdUtils.generateId());
    setZwlb(positionCategory);
    setPositionTier(positionTier);
    setExamYear(examYear);
    setExamNameConfigId(examNameConfigId);
    return this;
  }

}
